Some procedures required in 3GPP (3rd Generation Partnership Project) IMS to handle a S-CSCF (Serving Call Session Control Function) service interruption scenario with minimum impact to the service to the end user are described in 3GPP technical specification TS 23.380, which specifies how IMS restoration can be supported. Further, 3GPP TS 29.228 and 29.229 define how the information for IMS restoration is exchanged between HSS (Home Subscriber Server) and S-CSCF.
Furthermore 3GPP TS 24.229 includes the support of Globally Routable User Agent URIs (GRUUs), which is defined in RFC5627.
As defined in TS 23.228, section 4.3.3.2a, a Globally Routable User Agent URI (GRUU) is an identity that identifies a unique combination of Public User Identity and user equipment (UE) instance that allows a UE to address a SIP (Session Initiation Protocol) request to a specific Public User Identity UE combination instance, as opposed to a Public User Identity, in order to ensure that the SIP request is not forked to another registered UE of the same Public User Identity. There are two types of GRUUs: public GRUUs (P-GRUUs) and temporary GRUUs (T-GRUUs).
P-GRUUs are GRUUs that reveal the Public User Identity of the user and are very long lived. The public GRUU is permanent for the same Address of Record (AoR) (i.e. public user identity) and instance-ID pair.
T-GRUUs are GRUUs that contain a URI that do not reveal the Public User Identity of the user and are valid until the contact is explicitly de-registered or the current registration expires. The temporary GRUU must be changed with every re-registration. And all temporary GRUUs generated for an AoR and instance-ID pair for a registration are valid for the whole period of registration.
The IM CN (IP Multimedia Core Network) subsystem shall support the capability for IMS UEs to obtain both T-GRUUs and P-GRUUs when performing IMS registration, exchange GRUUs using SIP requests and responses and use GRUUs to address SIP requests to specific UEs according to RFC 5627.
As defined in TS 23.228, section 4.6.3, the Serving-CSCF (S-CSCF) performs the session control services for the UE. It maintains a session state as needed by the network operator for support of the services. Within an operators network, different S-CSCFs may have different functionalities. During a registration session, the S-CSCF may perform the following functions:                It may behave as a registrar, i.e. it accepts registration requests and makes its information available through the location server (e.g. HSS).        When a registration request includes an Instance ID with the contact being registered and indicates support for GRUU, the S-CSCF shall assign a unique P-GRUU and a new and unique T-GRUU to the combination of Public User Identity and Instance ID.        If a registration request indicates support for GRUU, the S-CSCF shall return the GRUU set assigned to each currently registered Instance ID.        The S-CSCF shall notify subscribers about registration changes, including the GRUU sets assigned to registered instances.        During registration process, the S-CSCF shall provide policy information, if available, for a Public User Identity from the HSS to the P-CSCF and/or UE.        
The SIP registrar (in IMS it is the S-CSCF, as mentioned above) delivers both P-GRUU and T-GRUU in Contact header in 200 OK response to REGISTER request.
Each Public User Identity (i.e. Address of Record (AoR)) may have one or more Globally Routable User Agent URIs (GRUUs). As mentioned above, there are two types of GRUU, P-GRUUs and T-GRUUs which are associated with Public User Identities and are generated and assigned to the UE together during registrations and re-registration in a pair of one P-GRUU and one T-GRUU. Each pair of a P-GRUU and a T-GRUU is associated with one Public User Identity and one UE.
During subsequent re-registrations the same P-GRUU will be assigned to the UE but a new and different T-GRUU will be generated and assigned. After a re-registration all the previous T-GRUUs generated during the period of this registration are all still valid. A UE may retain some or all of the previous T-GRUUs obtained during the initial registration or previous re-registrations along with the new T-GRUU or the UE may replace some or all of the previous T-GRUUs with the new T-GRUU. The current set of the P-GRUU and all T-GRUUs which are currently valid during this registration period is referred to here as the GRUU set. If a UE registers (explicitly or implicitly) with multiple Public User Identities, a separate GRUU set is associated with each. If different UEs register with the same Public User Identity, a different GRUU set is associated with each.
FIG. 1 shows the relationship of Public User Identities, GRUUs, and UEs as defined in TS 23.228.
As shown in FIG. 1, each GRUU is associated with a certain Address of Record (AoR) (i.e. public user identity) and instance-ID pair. And each pair has a GRUU set (one P-GRUU and multiple T-GRUUs). All GRUUs in this set can be seen as equivalent. The S-CSCF is able to identify the GRUU set of a P-GRUU, because 3GPP requires that a P-GRUU must be generated from AoR+instance-ID. So when a P-GRUU is received, the S-CSCF can identify the GRUU set of the P-GRUU. And AoR+instance-ID can already be stored in HSS and can be restored during the existing IMS restoration procedure.
In a similar manner, this can also be done for T-GRUU even if 3GPP doesn't specify any algorithm to generate the T-GRUU. As long as AoR+Instance-ID can be retrieved from a received T-GRUU, the GRUU set of the T-GRUU can be identified. But this is not enough because the validation of the T-GRUU is also bound to Call-ID and Cseq (command sequence) values of the registration of the AoR+Instance-ID pair.
As defined in RFC 3261, Call-ID contains a globally unique identifier for this call.
CSeq or Command Sequence contains an integer and a method name. The CSeq number is incremented for each new request within a dialog and is a traditional sequence number.
Further, the address-of-record (AOR) is a SIP or SIPS URI that points to a domain with a location service that can map the URI to another URI where the user might be available. Typically, the location service is populated through registrations. An AoR is frequently thought of as the “public address” of the user.
Further, as defined in TS 24.229, an instance ID is an URN (Uniform Resource Name) generated by the device that uniquely identifies a specific device amongst all other devices, and does not contain any information pertaining to the user. The public user identity together with the instance ID uniquely identifies a specific UA instance.
Currently, the algorithm defined in RFC5627 doesn't support the retrieval of AoR, instance-ID, Call-ID and CSeq values from the T-GRUU.
Further, based on the current concept for IMS restoration procedure defined by 3GPP, the S-CSCF can store the latest Contact header of REGISTER response in HSS, which will overwrite the previous Contact header stored in HSS. Though the latest T-GRUU can be stored in HSS and can be restored at S-CSCF, all previously generated T-GRUUs are lost and cannot be restored.